package py.progweb.sgc.gui.client.dialog;

import java.util.HashMap;

import com.google.gwt.user.client.Window;

public class DialogFactory {

	public static int DLG_LISTADO_GRUPOREGLAS = 1;
	public static int DLG_LISTADO_VERSIONGRUPOREGLAS = 2;
	public static int DLG_FORMULARIO_GRUPOREGLAS = 3;
	public static int DLG_LISTADO_CLIENTES = 4;
	public static int DLG_FORMULARIO_CLIENTES = 5;
	public static int DLG_LISTADO_PROVEEDORES = 6;
	public static int DLG_FORMULARIO_PROVEEDORES = 7;
	public static int DLG_LISTADO_CAJEROS = 8;
	public static int DLG_FORMULARIO_CAJEROS = 9;
	public static int DLG_LISTADO_PRODUCTOS = 10;
	public static int DLG_FORMULARIO_PRODUCTOS = 11;
	public static int DLG_LISTADO_CAJAS = 12;
	public static int DLG_FORMULARIO_CAJAS = 13;
	public static int DLG_LISTADO_COMPRADORES = 14;
	public static int DLG_FORMULARIO_COMPRADORES = 15;
	public static int DLG_LISTADO_VENDEDORES = 16;
	public static int DLG_FORMULARIO_VENDEDORES = 17;
	public static int DLG_FORMULARIO_VENTAS = 18;
	public static int DLG_FORMULARIO_COMPRAS = 19;
	public static int DLG_LISTADO_FACTURAS = 20;
	public static int DGL_FORMULARIO_PAGOS = 21;
	
	static HashMap<Integer, VentanaBase> instancias = new HashMap<Integer, VentanaBase>();

	public static VentanaBase showDialog(Integer dlg) {
		return showDialog(null, dlg);
	}

	public static VentanaBase showDialog(VentanaBase padre, Integer dlg) {
		try {
			VentanaBase v = instancias.get(dlg);

			if (v == null) {
				if (dlg.equals(DLG_LISTADO_GRUPOREGLAS))
					v = new ListadoGrupoRegla();
				else if (dlg.equals(DLG_FORMULARIO_GRUPOREGLAS)) {
					v = new FormularioGrupoRegla(padre);
					v.setWidth(300);
				} else if (dlg.equals(DLG_LISTADO_VERSIONGRUPOREGLAS)) {
					v = new ListadoVersionGrupoRegla();
				} else if (dlg.equals(DLG_LISTADO_CLIENTES)){
					v = new ListadoClientes();
				} else if (dlg.equals(DLG_FORMULARIO_CLIENTES)) {
					v = new FormularioClientes(padre);
					v.setWidth(300);
				}else if(dlg.equals(DLG_LISTADO_PROVEEDORES)){
					v = new ListadoProveedor();
				}else if(dlg.equals(DLG_FORMULARIO_PROVEEDORES)){
					v = new FormularioProveedores(padre);
					v.setWidth(300);
				} else if (dlg.equals(DLG_LISTADO_CAJEROS)){
					v = new ListadoCajeros();
				} else if (dlg.equals(DLG_FORMULARIO_CAJEROS)) {
					v = new FormularioCajeros(padre);
					v.setWidth(300);
				}else if(dlg.equals(DLG_LISTADO_PRODUCTOS)){
					v = new ListadoProductos();
				}else if(dlg.equals(DLG_FORMULARIO_PRODUCTOS)){
					v = new FormularioProductos(padre);
					v.setWidth(300);
				}else if(dlg.equals(DLG_LISTADO_CAJAS)){
					v = new ListadoCajas();
				}else if(dlg.equals(DLG_FORMULARIO_CAJAS)){
					v = new FormularioCajas(padre);
					v.setWidth(300);
				}else if(dlg.equals(DLG_LISTADO_COMPRADORES)){
					v = new ListadoCompradores();
				}else if(dlg.equals(DLG_FORMULARIO_COMPRADORES)){
					v = new FormularioCompradores(padre);
					v.setWidth(300);
				}else if(dlg.equals(DLG_LISTADO_VENDEDORES)){
					v = new ListadoVendedores();
				}else if(dlg.equals(DLG_FORMULARIO_VENDEDORES)){
					v = new FormularioVendedores(padre);
					v.setWidth(300);
				}else if(dlg.equals(DLG_FORMULARIO_VENTAS)){
					v = new FormularioVenta();
				}else if(dlg.equals(DLG_FORMULARIO_COMPRAS)){
					v = new FormularioCompra();
					
				}else if(dlg.equals(DLG_LISTADO_FACTURAS)){
					v = new ListadoFacturas();
					
				}else if(dlg.equals(DGL_FORMULARIO_PAGOS)){
					v = new FormularioPago(padre);
					instancias.put(dlg, v);
				}
			} else
				v.reset();

			v.show();

			return v;
		} catch (Exception e) {
			Window.alert("No pudo crearse el dialogo " + dlg + ": "
					+ e.getMessage());
		}

		return null;
	}

}
